Presently, the ubiquity of Internet connectivity and the unprecedented growth in data communications access bandwidth has been fueling the demand for more versatile forms of on-line content. In particular, there has been an increasing demand for multi-media content, such as audio and video. Existing Internet applications, however, have yet to provide effective delivery of bandwidth-intensive multi-media content to end-users.
Video is one of the most bandwidth-demanding forms of on-line content. Traditionally, video, particularly live video, as well as audio, have been broadcast over cable programming networks. Bandwidth-demanding video signals, such as television (TV) channels, have only been offered to end-users by the cable programming networks. Although broadband cable service can provide both digital data and cable programming to end-users, cable programming is often carried separately from data services. Consequently, end-users are not able to enjoy high-bandwidth audio or video content over broadband networks that offer only Internet connectivity and not cable programming.
Successful delivery of high-quality video content over an Internet connection is subject to several constraints. In the past, access bandwidth has presented one bottleneck. For example, dial-up Internet services generally limit access bandwidth to 56 Kbps. Recent developments in access technologies, such as ADSL, VDSL, direct Ethernet connection, and WLAN, have largely removed this bottleneck by bringing multi-Mbps connections to end-users. Despite these advances, factors other than bandwidth limits, such as server overloading and network congestion, still pose potential constraints.
Most constraints not directly caused by limited link bandwidth are often the result of centralized data transfer, where media content is delivered based on a client-server model. According to the client-server model, an end-user starts a client program, which contacts a server where the content is stored, and downloads the content from the server. Although the end-user's Internet connection may provide sufficient bandwidth to accommodate one or more video channels, the server may be overloaded if a large number of other end-users are simultaneously requesting streaming video. In addition, the connection between the server and the network may be congested with other network traffic. High-performance servers and high-bandwidth network connections can mitigate these problems, but such solutions are not scalable and inevitably increase service-provisioning costs.
Peer-to-peer (P2P) overlay networks have recently attracted growing interest as one solution to delivering high-quality video content. A P2P network is formed as a logical layer operating over a conventional network infrastructure, such as implemented in the Internet. In a P2P network, peer machines are aware of the states of other peer machines and a group of peer nodes can directly exchange data or services among themselves. The task of content delivery is not undertaken by one particular server. Thus, P2P networks provide a favorable environment for delivering streaming data, such as video, because P2P networks can avoid server overloading and reduce network congestion. More importantly, a P2P network can scale gracefully as the number of users increases.
Presenting streaming media content delivered over a P2P network remains a challenge. Existing media-presentation applications, such as the Microsoft Windows Media Player or Real Networks Player, play on-line content by receiving streaming content from a single server. In a P2P network, however, a media-presentation application must be able to play data received from multiple servers simultaneously. Conventional, general-purpose media-presentation applications only download streaming media content from a single server using a single Internet Protocol (IP) address and are unsuitable for playing streaming content in a P2P environment. Moreover, existing media-presentation technology also limits playback of streaming media content. For example, a user cannot fast-forward or rewind live streaming content. By comparison, P2P data transfer engines typically store incoming data into a local buffer and proprietary media-presentation applications can be implemented to read the data directly from these buffers. However, proprietary software is costly and incompatible with open standards.
Hence, there is a need for a system and a method for presenting streaming media content delivered over a P2P network with increased playback flexibility and versatility.